package com.ryhx.wifi.base.model.newsinfo.service;// 包名所在行

import java.util.List;
import java.util.Map;

import com.ryhx.osp.common.page.MysqlPageBean;
import com.ryhx.wifi.facade.base.entity.NewsInfo;//model名引入所在行
import com.ryhx.wifi.common.exceptions.BizException;//Exception名引入所在行

public interface NewsInfoService {

    /**
    * 根据主键获取实体
    * @param entityId 主键
    * @return
    */
    NewsInfo getNewsInfo(Long entityId) throws BizException;
    /**
    * 查询实体集合
    * @param query
    * @return
    */
    List<NewsInfo> getNewsInfoList(NewsInfo newsInfo, MysqlPageBean pageBean) throws BizException;

    /**
    * 查询实体集合的个数
    * @param query
    * @return
    */
    Integer getNewsInfoListCount(NewsInfo newsInfo) throws BizException;
     /**
     * 通过具体参数查询实体集合
     * @param query
     * @return
     */
    List<NewsInfo> getNewsInfoListByParams(Map<String, Object> params) throws BizException;
    
    /**
     * 通过具体参数查询实体集合的个数
     * @param query
     * @return
     */
    Integer getNewsInfoListCountByParams(Map<String, Object> params) throws BizException;

    /**
    * 保存实体 保证newsInfo 主键为空
    * @param newsInfo
    * @return
    */
    Long  insertNewsInfo(NewsInfo newsInfo) throws BizException;

    /**
    * 更新实体 保证实体中的主键不为空
    * @param newsInfo
    */
    int updateNewsInfo(NewsInfo newsInfo) throws BizException;

    /**
    * 更新实体 null字段忽略更新
    * @param newsInfo
    */
    int updateNewsInfoWithoutNull(NewsInfo newsInfo) throws BizException;

    /**
    * 更新实体 自定义条件
    * @param newsInfo   not empty
    * @param whereSql not blank 有sql注入风险 请开发人员自行保证安全性
    */
    int updateNewsInfoByWhereSql(Map<String,Object> newsInfo,String whereSql) throws BizException;

    /**
    * 根据主键删除实体
    * @param entityId
    */
    int deleteNewsInfo(Long entityId) throws BizException;
    /**
    * 删除实体集合
    * @param newsInfo 如果字段值不为空 将作为查询条件
    */
    int deleteNewsInfoList(Map<String,Object> newsInfo) throws BizException;

    /**
    * 根据自定义条件删除实体
    * @param whereSql not blank  有sql注入风险 请开发人员自行保证安全性
    */
    int deleteNewsInfoByWhereSql(String whereSql) throws BizException;

    /**
    * 清空实体表
    */
    int truncateNewsInfo() throws BizException;

    /**
    *  批量保存实体，保证list中的实体 主键为空
    * @param list
    */
    int batchInsertNewsInfo(List<NewsInfo> list) throws BizException;

    /**
    * 批量更新实体 保证list中的实体 主键不为空
    * @param list
    */
    int batchUpdateNewsInfo(List<NewsInfo> list) throws BizException;

    /**
    * 根据主键list 批量删除实体
    * @param idList
    */
    int batchDeleteNewsInfo(List<Long> idList) throws BizException;

    /**
    * 根据主键list 批量删除实体
    * @param newsInfoList 如果字段值不为空 将作为查询条件
    */
    int batchDeleteNewsInfoList(List<NewsInfo> newsInfoList) throws BizException;

}
